var hiddenNodes=[];	//用于存储被隐藏的结点
var zTreeObj ;
var rowIndex = "%^%%%%";
var _name = "";
var _fparentid = "-1";
var page;
var index;
/*
 * @Description: 预加载
 * @param :
 */
$(document).ready(function() {
	resizeIframeHight();
	fnResize();
	loadingCustom("正在加载BOM树。。。");
	
	setTimeout(function() {
		$.fn.zTree.init($("#bomTree"), setting);
		initBomTable();
		initBomXQTable("%^%%%%");
	}, 100);
});

//BOM树的操作
var setting = {
	async : {
		enable : true,
		url : pathUrl("Bom/getBomTree.action"),
		type : "POST",
		dataFilter : filter
	},
	view : {
		dblClickExpand : false,
		selectedMulti : false,
		showIcon : false
	},
	edit : {
		enable : true,
		showRemoveBtn : false,
		showRenameBtn : false
	},
	data : {
		/*
		 * keep: { parent:true, leaf:true },
		 */
		simpleData : {
			enable : true,
		}
	},
	callback : {
		onClick : onClick,
		onAsyncSuccess : zTreeOnAsyncSuccess
	}
};

/*
 * @Description: 对返回的json数据进行处理
 * @param : treeId	对应zTree的treeId
 * @param : parentNode	进行异步加载的父节点 JSON 数据对象
 * @param : childNodes	异步加载获取到的数据
 */
function filter(treeId, parentNode, childNodes) {
	//	console.log(childNodes);
	if (!childNodes)
		return null;
	for ( var i = 0, l = childNodes.length; i < l; i++) {
		if (childNodes[i].pId == -1) {
			childNodes[i].open = "true";
		}
	}
	return childNodes;
}

/*
 * @Description: 树异步加载正常结束的事件回调
 * @param : event	js event对象
 * @param : treeId	对应zTree的treeId
 * @param : treeNode	被点击的节点JSON数据对象
 * @param : msg	异步获取的节点数据字符串
 */
function zTreeOnAsyncSuccess(event, treeId, treeNode, msg) {
	swal.close();//关闭提示框
}

/*
 * @Description: 点击节点事件
 * @param : event	js event对象
 * @param : treeId	对应zTree的treeId
 * @param : treeNode	被点击的节点JSON数据对象
 * @param : clickFlag	节点被单击后的选中类型
 */
function onClick(event, treeId, treeNode, clickFlag) {
//	console.log(treeNode);
	var _pId = treeNode.pId;
	var _name = treeNode.name;
	var children = treeNode.children;
	var zTree = $.fn.zTree.getZTreeObj("bomTree");
	_fparentid = treeNode.id;
	
	$("#fnumber").val("");
	initBomTable();
	initBomXQTable("%^%%%%");
	$('.success').removeClass('success');
	rowIndex = "%^%%%%";
	if(children == undefined){
		$("#info").text(_name+"BOM信息");
		$("#detailed").text(_name+"BOM详细信息");
	}else{
		zTree.expandNode(treeNode);
		$("#info").text("BOM信息");
		$("#detailed").text("BOM详细信息");
	}
}
/*
 * @Description: 初始化bom表 
 * @param :
 */
function initBomTable() {
//	console.log(_fparentid,$("#fnumber").val())
	$("#bom").bootstrapTable('destroy').bootstrapTable({
		url : pathUrl("Bom/getFatherBomList.action"),
//		height:250,
		method : "POST",
		//striped : true,
		toolbar : '#toolbar',
		cache : false,
		pagination : true,
//		pageNumber : 1,
//		pageSize : 10,
		sidePagination : "server", // 分页方式：client客户端分页，server服务端分页（*）
//		pageList : [ 10, 25, 50, 100 ],
		rowStyle : function(row, index) {
			var classes = [ 'success' ];
			if (index == rowIndex) {
				return {
					classes : classes[0]
				};
			}
			return {};
		},
		queryParams : function(params) {
			return {
				offset : params.offset +1,
				row : params.limit,
//				flag : '1',
				fparentid : _fparentid,
				fnumber : $("#fnumber").val()
			}
		},
		dataType : 'JSON',
		uniqueId : "",
		columns : [ {
			field : 'fNumber',
			align : 'left',
			title : '物料代码'
		}, {
			field : 'fName',
			align : 'left',
			title : '物料名称'
		}, {
			field : 'fModel',
			align : 'left',
			title : '规格型号'
		}, {
			field : 'fErpClsID',
			align : 'left',
			title : '物料属性',
			formatter : attribute
		}, {
			field : 'fUnitName',
			align : 'left',
			title : '单位'
		}/*, {
			field : 'fqty',
			align : 'center',
			title : '数量'
		}, {
			field : 'fyield',
			align : 'center',
			title : '成品率（%）'
		}*/, {
			field : 'fUseStatus',
			align : 'left',
			title : '状态'
		}, {
			field : 'fStatus',
			align : 'left',
			title : '审核'
		}],
		onClickRow : function(row, $element) {
//			console.log(row)
			$('.success').removeClass('success');// 去除之前选中的行的，选中样式
			$($element).addClass('success');// 添加当前选中的 success样式用于区别
			index = $element.data('index');
			rowIndex = index;
			page = $('.pagination .active').find("a").eq(0).text();

			var fnumber = row.fNumber;
			initBomXQTable(fnumber);
		},
		onPageChange : function(number, size) {
			if (page == number) {
				rowIndex = index;
			} else {
				$('.success').removeClass('success');
				rowIndex = "%^%%%%";
			}
		}
	});
}
/*
 * @Description: 初始化bom详细信息表 
 * @param : value 传入参数
 */
function initBomXQTable(value) {
	$.ajax({
		type : "POST",
		url : pathUrl("Bom/findAllNeedBom.action"),
		dataType : "JSON",
		data : {'fNumber':value},
		success : function(data) {
			var bomXQdata = data;
			$("#bomXQ").bootstrapTable('destroy').bootstrapTable({
				contentType: 'application/x-www-form-urlencoded; charset=utf-8',
		        sidePagination: 'server',
		       // method : "POST",
		        pagination: false,
		        treeView: true,
		        treeId: "id",
		        treeField: "fChildName",
		        rowAttributes: function (row, index) {
		            return {
		                xx:index
		            };
		        },
				columns : [{
					field : 'fChildName',
					title : '物料名称',
//					align : 'center',
				}, {
					field : 'fChildNumber',
					align : 'left',
					title : '子项物料代码'
				},{
					field : 'fChildModel',
					align : 'left',
					title : '规格型号'
				}, {
					field : 'fErpClsID',
					align : 'left',
					title : '物料属性',
					formatter : attribute
				}, {
					field : 'fChildUnitName',
					align : 'left',
					title : '单位'
				}, {
					field : 'fChildQty',
					align : 'left',
					title : '用量'
				}],
				data:bomXQdata
			});
		},
		error : function(request) {
			swal_Tips_Error();
		}
	});
}
/*
 * @Description: 格式化：物料属性
 * @param :
 */
function attribute(value,row,index){
	str ="";
	if(value == 1){
		str = "外购";
	}else if(value == 2){
		str = "自制";
	}else if(value == 3){
		str = "委外加工";
	}else if(value == 5){
		str = "虚拟件";
	}
	return str;
}
/*
 * @Description: 浏览器改变大小后，表自动改变大小
 * @param :
 */
$(window).resize(function () {
    $('#bom').bootstrapTable('resetView');
    $('#bomXQ').bootstrapTable('resetView');
});

/*
 * @Description: 查询按钮点击事件 
 * @param :
 */
$("#cx").click(function() {
	initBomTable();
	initBomXQTable("%^%%%%");
	$('.success').removeClass('success');
	rowIndex = "%^%%%%";
});

/**
 * 物料代码输入框监听回车事件
 * @param event
 * @returns
 */
$('#fnumber').keypress(function(event) {
	if (event.keyCode === 13) {
		$('#cx').click();
	}
})

/*
 * @Description: 浏览器窗口大小改变后：
 * 				 class为ztree，divClassLeft，divClassRight的高度随之改变，
 * 				 divClassLeft的最大高度和最小高度随之改变
 * @param :
 */
function fnResize() {
	var height = $(window).height() - 15;//获取浏览器窗口大小
	document.getElementsByClassName("divClassLeft")[0].style.height = height +"px";
	document.getElementsByClassName("divClassLeft")[0].style.maxHeight = height +"px";
	document.getElementsByClassName("divClassLeft")[0].style.minHeight = height +"px";
	document.getElementsByClassName("divClassRight")[0].style.maxHeight = height +"px";
	document.getElementsByClassName("divRight")[0].style.maxHeight = height +"px";
	document.getElementsByClassName("ztree")[0].style.height = (height - 15) +"px";
}
/*
 * @Description: 浏览器窗口大小自适应
 * @param :
 */
$(window).resize(function() {
	window.setTimeout(function() {
		fnResize();
	}, 0);
});